#define _CRT_SECURE_NO_WARNINGS 1



#include<stdio.h>
#include<assert.h>
#include<string.h>
//
//size_t my_strlen(const char* p)
//{
//	int a = 0;
//		while (*(p+a) != '\0')
//	{
//		a++;
//	}
//	return a;
//}
////
////int main()
////{
////	char a[] ="abcdefg";
////	size_t b=my_strlen(a);
////	printf("%u", b);
////	return 0;
////}
////
//
//char* my_strcpy(char*p1,const char*p2)
//{
//	char* p3 = p1;
//	while (*p2!='\0')
//	{
//		*p1 = *p2;
//		p1++; p2++;
//	}
//	*p1 = *p2;
//	return p3;
//}
//
//
//int my_strcmp(const char* p1, const char* p2)
//{
//	assert(p1);
//	assert(p2);
//	int i = 0;
//	for (;*p1==*p2;p1++,p2++)
//	{
//		if (*p1 == '\0')
//		{
//			return 0;
//		}
//	}	
//	if (*p1 > *p2)
//	{
//		return 1;
//	}
//	return -1;
//		
//}
//
//
//char* my_strcat(char* p1,const char* p2)
//{
//	assert(p1);
//	assert(p2);
//	char* p3 = p1;
//	while (*p1)
//	{
//		*p1++;
//	}
//	while (*p1++ = *p2++)
//	{
//		;
//	}
//	return p3;
//}

char* my_strstr(const char* p1,const char* p2)
{
	char* p3 = p1;
	char* p4 = p2;
	char* a = p1;
	while (*p3)
	{
		p4 = p2;
		p3 = a;
		while (*p3 == *p4 && *p4&&*p3)
		{
			p3++; p4++;
		}
		if (*p4 == '\0')
		{
			return a;
		}
		a++;
	}
	return NULL;
}


int main()
{
	char a[20] = "abcdefbde";
	char b[20] = "bcd";
	
	printf("%s\n", my_strstr(a, b));
	printf("%s", strstr(a, b));
	return 0;
}